20 research outputs found

    Caractérisation impérative des algorithmes séquentiels en temps quelconque, primitif récursif ou polynomial

    Get PDF
    Colson and Moschovakis results cast doubt on the ability of the primitive recursive model to compute a value by any means possible : the model may be complete for functions but there is a lack of algorithms. So the Church thesis express more what can be computed than how the computation is done. We use Gurevich thesis to formalize the intuitive idea of sequential algorithm by the Abstract States Machines (ASMs).We formalize the imperative programs by Jones' While language, and a variation LoopC of Meyer and Ritchie's language allowing to exit a loop if some condition is fulfilled. We say that a language characterizes an algorithmic class if the associated models of computations can simulate each other using a temporal dilatation and a bounded number of temporary variables. We prove that the ASMs can simulate While and LoopC, that if the space is primitive recursive then LoopC is primitive recursive in time, and that its restriction LoopC_stat where the bounds of the loops cannot be updated is in polynomial time. Reciprocally, one step of an ASM can be translated into a program without loop, which can be repeated enough times if we insert it onto a program in While for a general complexity, in LoopC for a primitive recursive complexity, and in LoopC_stat for a polynomial complexity.So While characterizes the sequential algorithms, LoopC the algorithms in primitive recursive space and time, and LoopC_stat the polynomial time algorithmsLes rĂ©sultats de Colson ou de Moschovakis remettent en question que le modĂšle rĂ©cursif primitif puisse calculer une valeur par tous les moyens possibles : il y a toutes les fonctions voulues mais il manque des algorithmes. La thĂšse de Church exprime donc plutĂŽt ce qui peut ĂȘtre calculĂ© que comment le calcul est fait. Nous utilisons la thĂšse de Gurevich formalisant l'idĂ©e intuitive d'algorithme sĂ©quentiel par les Abstract States Machines (ASMs).Nous reprĂ©sentons les programmes impĂ©ratifs par le langage While de Jones, et une variante LoopC du langage de Meyer et Ritchie permettant de sortir d'une boucle lorsqu'une condition est remplie. Nous dirons qu'un langage caractĂ©rise une classe algorithmique si les modĂšles de calcul associĂ©s peuvent se simuler mutuellement, en utilisant une dilatation temporelle et un nombre bornĂ© de variables temporaires. Nous prouvons que les ASMs peuvent simuler While et LoopC, que si l'espace est primitif rĂ©cursif alors LoopC est en temps rĂ©cursif primitif, et que sa restriction LoopC_stat oĂč les bornes des boucles ne peuvent ĂȘtre mises Ă  jour est en temps polynomial. RĂ©ciproquement, une Ă©tape d'ASM peut ĂȘtre traduite par un programme sans boucle, qu'on peut rĂ©pĂ©ter suffisamment en l'insĂ©rant dans un programme qui est dans While si la complexitĂ© est quelconque, dans LoopC si elle est rĂ©cursif primitif, et dans LoopC_stat si elle est polynomiale.Ainsi While caractĂ©rise les algorithmes sĂ©quentiels en temps quelconque, LoopC ceux en temps et espace rĂ©cursifs primitifs, et LoopC_stat ceux en temps polynomia

    The Indiscernibility Methodology: quantifying information leakage from side-channels with no prior knowledge

    Get PDF
    Cyber security threats are important and growing issues in computing systems nowadays. Among them are the side-channel attacks, made possible by information leaking from computing systems through nonfunctional properties like execution time, consumed energy, power profiles, etc. These attacks are especially difficult to protect from, since they rely on physical measurements not usually envisioned when designing the functional properties of a program. Furthermore, countermeasures are usually dedicated to protect a particular program against a particular attack, lacking universality. To help fight these threats, we propose in this paper the Indiscernibility Methodology, a novel methodology to quantify with no prior knowledge the information leaked from programs, thus providing the developer with valuable security metrics, derived either from topology or from information theory. Our original approach considers the code to be analyzed as a completely black box, only the public inputs and leakages being observed. It can be applied to various types of side-channel leakages: time, energy, power, EM, etc. In this paper, we first present our Indiscernibility Methodology, including channels of information and our threat model. We then detail the computation of our novel metrics, with strong formal foundations based both on topological security (with distances defined between secret-dependent observations) and on information theory (quantifying the remaining secret information after observation by the attacker). Then we demonstrate the applicability of our approach by providing experimental results for both time and power leakages, studying both average case-, worst case-and indiscernible information metrics

    Semi-automatic ladderisation : improving code security through rewriting and dependent types

    Get PDF
    Funding: This work was generously supported by the EU Horizon 2020 project, TeamPlay (https://www.teamplay-h2020.eu), grant number 779882, and UK EPSRC, Energise, grant number EP/V006290/1.Cyber attacks become more and more prevalent every day.An arms race is thus engaged between cyber attacks and cyber defences.One type of cyber attack is known as a side channel attack, where attackers exploit information leakage from the physical execution of a program, e.g. timing or power leakage, to uncover secret information, such as encryption keys or other sensitive data. There have been various attempts at addressing the problem of side-channel attacks, often relying on various measures to decrease the discernibility of several code variants or code paths. Most techniques require a high-degree of expertise by the developer, who often employs ad hoc, hand-crafted code-patching in an attempt to make it more secure. In this paper, we take a different approach: building on the idea of ladderisation, inspired by Montgomery Ladders. We present a semi-automatic tool-supported technique, aimed at the non-specialised developer, which refactors (a class of) C programs into functionally (and even algorithmically) equivalent counterparts with improved security properties. Our approach provides refactorings that transform the source code into its ladderised equivalent, driven by an underlying verified rewrite system, based on dependent types. Our rewrite system automatically finds rewritings of selected C expressions, facilitating the production of their equivalent ladderised counterparts for a subset of C. Using our tool-supported technique, we demonstrate our approach on a number of representative examples from the cryptographic domain, showing increased security.Postprin

    The TeamPlay project : analysing and optimising time, energy, and security for cyber-physical systems

    Get PDF
    Funding: This work was supported by the EU Horizon-2020 project TeamPlay (https://www.teamplay-h2020.eu), grant #779882.Non-functional properties, such as energy, time, and security (ETS) are becoming increasingly important for the programming of Cyber-Physical Systems (CPS). This paper describes TeamPlay, a research project funded under the EU Horizon 2020 programme between January 2018 and June 2021.TeamPlay aimed to provide the system designer with a toolchain for developing embedded applications where ETS properties are first-class citizens, allowing the developer to reflect directly on energy, time and security properties at the source code level. In this paper we give an overview of the TeamPlay methodology, introduce the challenges and solutions of our approach and summarise the results achieved. Overall, applying our TeamPlay methodology led to an improvement of up to 18% performance and 52% energy usage over traditional approaches.Postprin

    Algorithmic Completeness of Imperative Programming Languages

    No full text
    International audienceAccording to the Church-Turing Thesis, effectively calculable functions are functions computable by a Turing machine. Models that compute these functions are called Turing-complete. For example, we know that common imperative languages (such as C, Ada or P ython) are Turing complete (up to unbounded memory). Algorithmic completeness is a stronger notion than Turing-completeness. It focuses not only on the input-output behavior of the computation but more importantly on the step-by-step behavior. Moreover, the issue is not limited to partial recursive functions, it applies to any set of functions. A model could compute all the desired functions, but some algorithms (ways to compute these functions) could be missing (see [10, 27] for examples related to primitive recursive algorithms). This paper's purpose is to prove that common imperative languages are not only Turing-complete but also algorithmically complete, by using the axiomatic definition of the Gurevich's Thesis and a fair bisimulation between the Abstract State Machines of Gurevich (defined in [16]) and a version of Jones' While programs. No special knowledge is assumed, because all relevant material will be explained from scratch

    Imperative characterization of sequential algorithms in general, primitive recursive or polynomial time

    No full text
    Les rĂ©sultats de Colson ou de Moschovakis remettent en question que le modĂšle rĂ©cursif primitif puisse calculer une valeur par tous les moyens possibles : il y a toutes les fonctions voulues mais il manque des algorithmes. La thĂšse de Church exprime donc plutĂŽt ce qui peut ĂȘtre calculĂ© que comment le calcul est fait. Nous utilisons la thĂšse de Gurevich formalisant l'idĂ©e intuitive d'algorithme sĂ©quentiel par les Abstract States Machines (ASMs).Nous reprĂ©sentons les programmes impĂ©ratifs par le langage While de Jones, et une variante LoopC du langage de Meyer et Ritchie permettant de sortir d'une boucle lorsqu'une condition est remplie. Nous dirons qu'un langage caractĂ©rise une classe algorithmique si les modĂšles de calcul associĂ©s peuvent se simuler mutuellement, en utilisant une dilatation temporelle et un nombre bornĂ© de variables temporaires. Nous prouvons que les ASMs peuvent simuler While et LoopC, que si l'espace est primitif rĂ©cursif alors LoopC est en temps rĂ©cursif primitif, et que sa restriction LoopC_stat oĂč les bornes des boucles ne peuvent ĂȘtre mises Ă  jour est en temps polynomial. RĂ©ciproquement, une Ă©tape d'ASM peut ĂȘtre traduite par un programme sans boucle, qu'on peut rĂ©pĂ©ter suffisamment en l'insĂ©rant dans un programme qui est dans While si la complexitĂ© est quelconque, dans LoopC si elle est rĂ©cursif primitif, et dans LoopC_stat si elle est polynomiale.Ainsi While caractĂ©rise les algorithmes sĂ©quentiels en temps quelconque, LoopC ceux en temps et espace rĂ©cursifs primitifs, et LoopC_stat ceux en temps polynomialColson and Moschovakis results cast doubt on the ability of the primitive recursive model to compute a value by any means possible : the model may be complete for functions but there is a lack of algorithms. So the Church thesis express more what can be computed than how the computation is done. We use Gurevich thesis to formalize the intuitive idea of sequential algorithm by the Abstract States Machines (ASMs).We formalize the imperative programs by Jones' While language, and a variation LoopC of Meyer and Ritchie's language allowing to exit a loop if some condition is fulfilled. We say that a language characterizes an algorithmic class if the associated models of computations can simulate each other using a temporal dilatation and a bounded number of temporary variables. We prove that the ASMs can simulate While and LoopC, that if the space is primitive recursive then LoopC is primitive recursive in time, and that its restriction LoopC_stat where the bounds of the loops cannot be updated is in polynomial time. Reciprocally, one step of an ASM can be translated into a program without loop, which can be repeated enough times if we insert it onto a program in While for a general complexity, in LoopC for a primitive recursive complexity, and in LoopC_stat for a polynomial complexity.So While characterizes the sequential algorithms, LoopC the algorithms in primitive recursive space and time, and LoopC_stat the polynomial time algorithm

    A Hole in the Ladder: Interleaved Variables in Iterative Conditional Branching

    Get PDF
    International audienceThe modular exponentiation is crucial to the RSA cryptographic protocol, and variants inspired by the Montgomery ladder have been studied to provide more secure algorithms. In this paper, we abstract away the iterative conditional branching used in the Montgomery ladder, and formalize systems of equations necessary to obtain what we call the semi-interleaved and fully-interleaved ladder properties. In particular, we design fault-injection attacks able to obtain bits of the secret against semi-interleaved ladders, including the Montgomery ladder, but not against fully-interleaved ladders that are more secure. We also apply these equations to extend the Montgomery ladder for both the semi-and fully-interleaved cases, thus proposing novel and more secure algorithms to compute the modular exponentiation

    Axiomatization and Imperative Characterization of Multi-BSP Algorithms: A Q&A on a Partial Solution

    No full text
    International audiencemulti-bsp is a new bridging model which takes into account hierarchical architectures. We discuss two questions about multi-bsp algorithms and their programming: (1) How do we get a formal characterization of the class of multi-bsp algorithms? (2) How can a programming language be proven algorithmically complete for such a class? Our solution is based on an extension of a bsp version of sequential abstract state machines (asms)

    An ASM Thesis for BSP

    No full text
    The gurevich's thesis stipulates that sequential abstract state machines (asms) capture the essence of sequential algorithms. On another side, the bulk-synchronous parallel (bsp) bridging model is a well known model for hpc algorithm design. It provides a conceptual bridge between the physical implementation of the machine and the abstraction available to a programmer of that machine. The assumptions of the bsp model are thus provide portable and scalable performance predictions on hpc systems. We follow gurevich's thesis and extend the sequential postulates in order to intuitively and realistically characterise the bsp algorithms
    corecore